草庐IT

c++ - Qt MainWindow CloseEvent Mac Cmd+Q

全部标签

c++ - 将 int[][] 分配给 int**

这个问题在这里已经有了答案:HowdoIusearraysinC++?(5个答案)关闭8年前。据我所知,在某些情况下,数组会转换为指向其第一个元素的指针:inta[5];int*p;p=a;按照这种方法并考虑到我可以将数组分配给指针,为什么我不能将二维数组分配给指向指针的指针?inta[5][5];int**q;q=a;但是,我可以将指针数组分配给指向指针的指针:int*p[5];int**q;q=p;如果将数组转换为指向其第一个元素的指针,则在第二个示例中发生q=a时,a应该是指向a[0]的指针,而a[0]应该是指向a[0]的指针[0],对吧?此外,如果我这样做,我不会收到错误:co

c++ - GNU Bison 生成的解析器在给定非空文件时抛出段错误 11

每当我使用有效文件调用yyparse()时,我都会收到一个段错误,似乎是由这行代码(大约第1789行)引起的:if(yyss+yystacksize-1我是通过在这行代码前后打印调试消息得出这个结论的。此行之前的消息已打印,但此行之后的消息未打印。一件奇怪的事情是,如果我用一个空文件调用yyparse(),不会抛出错误,但如果文件中至少有一个字符,则会抛出错误。解析器本身已编译无任何错误。此段错误背后的原因可能是什么?解析文件:https://gist.github.com/SamTebbs33/bffb72517f174af679ef调试消息代码:cout第一条调试消息在抛出错误之前

c++ - C/C++ 中可中断的命名范围

介绍这个问题来自这个问题:Thenamedloopidiom:dangerous?.对于不想阅读原始问题的人来说,这是关于做这样的事情:named(label1)for(inti=0;i这个新问题是关于“命名循环”习语的改进版本。如果你懒得阅读整篇文章,你可以直接进入这篇文章的“示例”部分,清楚地理解我在说什么。设计缺陷不幸的是,这个问题很快就结束了(后来又重新打开了),因为它更像是一个利弊辩论,而不是一个纯粹的技术问题。似乎它不适合SOQ&A格式。此外,我提供的代码有几个缺陷:关键词break由宏重新定义宏是用小写字母写的它使一些可怕的东西可以编译(至少使用MSVC):intfoo(

c++ - gcc 是否有 pragma 来定义文件类型/编译器?

GCC根据文件扩展名(.c、.cc)、命令行参数(-x)或直接调用适当的编译器(比如g++而不是gcc)自动在编译器之间切换。有什么方法可以在文件中使用pragma来覆盖这些吗?评论后更新:我正在将当前50/50C和C++的代码库转换为完全使用C++编译器编译。这是为了允许当前的“C”模块调用我无法更改(并且不想包装)的新C++基础。对于真正是C的文件,我想将扩展名保留为.c,即使它们现在具有C++链接。我认为将它们保留为“.c”表明它们为何如此(我在这里考虑后代!;-))但是更改构建系统以适应每个更改的C文件名也是一项艰巨的工作。更糟糕的是,C文件的一小部分不会正常地转换为C++,所

java - 不同编程语言的字符编码是否相同?

将包含小写字母的char转换为int的一种非常简单(也是一种优雅)的方法是执行以下操作:intconvertLowercaseCharLettertoInt(charletter){returnletter-'a';}但是,此代码假定char编码遵循与字母表相同的顺序。或者,更一般地说,它假定char遵循ASCII编码。我知道Javachar是UTF-16而Cchar是ASCII。虽然UTF-16不向后兼容ASCII,但前128个字母的顺序在两者中是相同的。那么前128个char的顺序在所有主要语言(如C、C++、Java、C#、JavaScript和Python)中是否都相同?一般来

java - 确定给定数字 N 是否可以成为具有所有 3 个整数边的直角三角形的斜边的算法

假设给定一个直角三角形的斜边,那么如何确定给定的斜边是否可能存在两条整数较小的边。例如,给定斜边为5。然后您必须确定给定直角三角形的整数边是否更小。答案将是是,因为我们可以有更小的边为3和4,因此得到一个3-4-5直角三角形。类似地,对于像7这样的斜边,我们不能有这样的直角三角形。换句话说,我们要找出一个给定的数N是否可以作为3边均为整数的直角三角形的斜边。我浏览了关于Pythagoreantriples的整篇文章但仍然没有成功。我很困惑要检查什么条件。请帮忙。 最佳答案 你有一个原始毕达哥拉斯三元组:(p^2-q^2)^2+(2*

c++ - 获取磁盘转速示例代码

我不太擅长VC++,但有没有人有示例代码来获取计算机中磁盘的转速。我一直致力于检测SSD驱动器,整天研究的一个解决方案是获取转速,因为SSD的转速为0rpm,这可能是检测SSD驱动器的唯一方法。 最佳答案 来自googlewmissddetectThereisanNVcachemanagerinterfaceusedforReadyDrivewhichisnewtoVista.IthinkitistestingNV_FEATURE_PARAMETER'sNVReadSpeedandNVWrtSpeedvalues.Windows7d

c++ - 将 C 样式字符串初始化为 NULL 与空字符串之间的区别

这三个是否等价:char*p=NULL;char*q="";charr[]={'\0'};我怀疑第一个与其他的不同,但我不完全确定。 最佳答案 我正在回答C++,即使OP也将问题标记为C。这是两种不同的语言。将它们混为一谈不是一个好主意。本声明:char*q="";在C++03中使用了弃用的转换,并在C++11中变为无效。我们现在在C++14。这两个声明:char*p=NULL;charr[]={'\0'};根本不同。第一个声明一个指针并将其设置为空。第二个声明一个包含一项的数组,该项设置为空。关于”Arethesethreeequ

c++ - 什么 Ruzzle 板包含最独特的单词?

对于智能手机,有这个游戏叫Ruzzle.这是一个找词游戏。快速说明:游戏板是一个4x4的字母网格。您可以从任意单元格开始,通过向上、向下、向左、向右或对角线拖动来尝试拼写单词。棋盘不换行,您不能重复使用已经选择的字母。平均而言,我和我的friend会找到大约40个单词,并且在回合结束时,游戏会告诉您您可能会找到多少个单词。这个数字通常约为250-350。我们想知道哪个板会产生最多的可能单词。我将如何找到最佳板?我用C编写了一个程序,它接受16个字符并输出所有适当的单词。测试超过80,000个单词,处理大约需要一秒钟。问题:棋盘排列数为26^16。那是436087428994288740

c++ - include "file.h"vs <file> 有什么区别?

我在VisualStudio2010中工作。我在ProjectProperties->Linker->General->AdditionalDirectories添加了一个目录如果我使用项目编译"file.h"但如果我使用则不会 最佳答案 您可能假设隐式添加.h到文件名的末尾。这不是真的。你是否使用或""对文件名没有意义。它基本上告诉实现应该以何种顺序遍历包含目录以查找头文件。引用标准:Apreprocessingdirectiveoftheform#includenew-linesearchesasequenceofimpleme